{
  "bundles": [
    {
      "@type": "NXBundle",
      "artifactId": "nuxeo-platform-login-token",
      "artifactVersion": "7.10-HF07",
      "bundleGroup": {
        "@type": "NXBundleGroup",
        "bundleIds": [
          "org.nuxeo.admin.center",
          "org.nuxeo.admin.center.analytics.dashboards",
          "org.nuxeo.admin.center.monitoring",
          "org.nuxeo.admin.center.oauth.opensocial",
          "org.nuxeo.apidoc.core",
          "org.nuxeo.apidoc.webengine",
          "org.nuxeo.connect.client.wrapper",
          "org.nuxeo.connect.update",
          "org.nuxeo.ecm.actions",
          "org.nuxeo.ecm.actions.jsf",
          "org.nuxeo.ecm.audit.io",
          "org.nuxeo.ecm.default.config",
          "org.nuxeo.ecm.imaging.recompute",
          "org.nuxeo.ecm.permissions",
          "org.nuxeo.ecm.platform",
          "org.nuxeo.ecm.platform.api",
          "org.nuxeo.ecm.platform.audio.core",
          "org.nuxeo.ecm.platform.audio.jsf",
          "org.nuxeo.ecm.platform.collections.core",
          "org.nuxeo.ecm.platform.collections.jsf",
          "org.nuxeo.ecm.platform.commandline.executor",
          "org.nuxeo.ecm.platform.content.template",
          "org.nuxeo.ecm.platform.contentview.jsf",
          "org.nuxeo.ecm.platform.convert",
          "org.nuxeo.ecm.platform.dublincore",
          "org.nuxeo.ecm.platform.el",
          "org.nuxeo.ecm.platform.htmlsanitizer",
          "org.nuxeo.ecm.platform.importer.core",
          "org.nuxeo.ecm.platform.importer.jaxrs",
          "org.nuxeo.ecm.platform.lang",
          "org.nuxeo.ecm.platform.login",
          "org.nuxeo.ecm.platform.login.cas2",
          "org.nuxeo.ecm.platform.login.default",
          "org.nuxeo.ecm.platform.login.digest",
          "org.nuxeo.ecm.platform.login.shibboleth",
          "org.nuxeo.ecm.platform.login.token",
          "org.nuxeo.ecm.platform.mail",
          "org.nuxeo.ecm.platform.mail.types",
          "org.nuxeo.ecm.platform.mail.web",
          "org.nuxeo.ecm.platform.oauth",
          "org.nuxeo.ecm.platform.preview",
          "org.nuxeo.ecm.platform.rendering",
          "org.nuxeo.ecm.platform.restapi.io",
          "org.nuxeo.ecm.platform.restapi.server",
          "org.nuxeo.ecm.platform.spreadsheet",
          "org.nuxeo.ecm.platform.suggestbox.core",
          "org.nuxeo.ecm.platform.suggestbox.jsf",
          "org.nuxeo.ecm.platform.thumbnail",
          "org.nuxeo.ecm.platform.ui",
          "org.nuxeo.ecm.platform.ui.select2",
          "org.nuxeo.ecm.platform.uidgen.core",
          "org.nuxeo.ecm.platform.web.common",
          "org.nuxeo.ecm.platform.webapp.types",
          "org.nuxeo.ecm.platform.ws",
          "org.nuxeo.ecm.platform.ws.sun.jaxws",
          "org.nuxeo.ecm.user.center",
          "org.nuxeo.ecm.user.center.dashboard",
          "org.nuxeo.ecm.user.center.dashboard.jsf",
          "org.nuxeo.ecm.user.center.notification",
          "org.nuxeo.ecm.user.center.oauth",
          "org.nuxeo.ecm.user.center.profile",
          "org.nuxeo.ecm.user.invite",
          "org.nuxeo.ecm.user.registration",
          "org.nuxeo.ecm.user.registration.web",
          "org.nuxeo.ecm.webapp.base",
          "org.nuxeo.ecm.webapp.core",
          "org.nuxeo.ecm.webapp.ui",
          "org.nuxeo.ecm.webdav",
          "org.nuxeo.platform.virtualnavigation.types",
          "org.nuxeo.platform.virtualnavigation.web",
          "org.nuxeo.search.ui",
          "org.nuxeo.usermapper"
        ],
        "hierarchyPath": "/grp:org.nuxeo.ecm.platform",
        "id": "grp:org.nuxeo.ecm.platform",
        "name": "org.nuxeo.ecm.platform",
        "parentIds": [],
        "readmes": [],
        "version": "7.10"
      },
      "bundleId": "org.nuxeo.ecm.platform.login.token",
      "components": [
        {
          "@type": "NXComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentation": "\n      Authentication plugin using a token to validate\n      identity. This token is sent as a HTTP request header.\n\n      The user is retrieved looking into a directory mapping unique tokens to user names.\n\n      This Authentication Plugin is\n      configured to be\n      used with the Trusting_LM LoginModule plugin\n      =&gt; no password check will be done, a\n      principal will be\n      created from the userName if the user exists in the user directory.\n\n      Set the allowAnonymous parameter to true to\n      allow token authentication for anonymous user.\n\n      @author\n      Antoine Taillefer (ataillefer@nuxeo.com)\n    \n",
              "documentationHtml": "<p>\nAuthentication plugin using a token to validate\nidentity. This token is sent as a HTTP request header.\n</p><p>\nThe user is retrieved looking into a directory mapping unique tokens to user names.\n</p><p>\nThis Authentication Plugin is\nconfigured to be\nused with the Trusting_LM LoginModule plugin\n&#61;&gt; no password check will be done, a\nprincipal will be\ncreated from the userName if the user exists in the user directory.\n</p><p>\nSet the allowAnonymous parameter to true to\nallow token authentication for anonymous user.\n</p><p>\nAntoine Taillefer (ataillefer&#64;nuxeo.com)\n</p><p></p>",
              "extensionPoint": "org.nuxeo.ecm.platform.ui.web.auth.service.PluggableAuthenticationService--authenticators",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/org.nuxeo.ecm.platform.login.token/org.nuxeo.ecm.login.token.authentication.contrib/Contributions/org.nuxeo.ecm.login.token.authentication.contrib--authenticators",
              "id": "org.nuxeo.ecm.login.token.authentication.contrib--authenticators",
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.platform.ui.web.auth.service.PluggableAuthenticationService",
                "name": "org.nuxeo.ecm.platform.ui.web.auth.service.PluggableAuthenticationService",
                "type": "service"
              },
              "version": "7.10-HF07",
              "xml": "<extension point=\"authenticators\" target=\"org.nuxeo.ecm.platform.ui.web.auth.service.PluggableAuthenticationService\">\n\n    <documentation>\n      Authentication plugin using a token to validate\n      identity. This token is sent as a HTTP request header.\n\n      The user is retrieved looking into a directory mapping unique tokens to user names.\n\n      This Authentication Plugin is\n      configured to be\n      used with the Trusting_LM LoginModule plugin\n      =&gt; no password check will be done, a\n      principal will be\n      created from the userName if the user exists in the user directory.\n\n      Set the allowAnonymous parameter to true to\n      allow token authentication for anonymous user.\n\n      @author\n      Antoine Taillefer (ataillefer@nuxeo.com)\n    </documentation>\n\n    <authenticationPlugin class=\"org.nuxeo.ecm.platform.ui.web.auth.token.TokenAuthenticator\" enabled=\"true\" name=\"TOKEN_AUTH\">\n      <loginModulePlugin>Trusting_LM</loginModulePlugin>\n      <parameters>\n        <parameter name=\"allowAnonymous\">false</parameter>\n      </parameters>\n    </authenticationPlugin>\n\n  </extension>"
            },
            {
              "@type": "NXContribution",
              "documentation": "\n      Override Automation specific authentication chain to\n      use token authentication just after basic one.\n    \n",
              "documentationHtml": "<p>\nOverride Automation specific authentication chain to\nuse token authentication just after basic one.\n</p><p></p>",
              "extensionPoint": "org.nuxeo.ecm.platform.ui.web.auth.service.PluggableAuthenticationService--specificChains",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/org.nuxeo.ecm.platform.login.token/org.nuxeo.ecm.login.token.authentication.contrib/Contributions/org.nuxeo.ecm.login.token.authentication.contrib--specificChains",
              "id": "org.nuxeo.ecm.login.token.authentication.contrib--specificChains",
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.platform.ui.web.auth.service.PluggableAuthenticationService",
                "name": "org.nuxeo.ecm.platform.ui.web.auth.service.PluggableAuthenticationService",
                "type": "service"
              },
              "version": "7.10-HF07",
              "xml": "<extension point=\"specificChains\" target=\"org.nuxeo.ecm.platform.ui.web.auth.service.PluggableAuthenticationService\">\n\n    <documentation>\n      Override Automation specific authentication chain to\n      use token authentication just after basic one.\n    </documentation>\n\n    <specificAuthenticationChain handlePrompt=\"false\" name=\"Automation\">\n\n      <urlPatterns>\n        <url>(.*)/automation.*</url>\n      </urlPatterns>\n      <replacementChain>\n        <plugin>AUTOMATION_BASIC_AUTH</plugin>\n        <plugin>TOKEN_AUTH</plugin>\n      </replacementChain>\n    </specificAuthenticationChain>\n\n    <specificAuthenticationChain name=\"RestAPI\">\n      <urlPatterns>\n        <url>(.*)/api/v.*</url>\n      </urlPatterns>\n      <replacementChain>\n        <plugin>AUTOMATION_BASIC_AUTH</plugin>\n        <plugin>TOKEN_AUTH</plugin>\n      </replacementChain>\n    </specificAuthenticationChain>\n\n\n\n    <documentation>\n      Use token authentication if the related request\n      header is sent.\n    </documentation>\n\n    <specificAuthenticationChain name=\"TokenAuth\">\n      <headers>\n        <header name=\"X-Authentication-Token\">.*</header>\n      </headers>\n      <replacementChain>\n        <plugin>TOKEN_AUTH</plugin>\n      </replacementChain>\n    </specificAuthenticationChain>\n\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.ecm.platform/org.nuxeo.ecm.platform.login.token/org.nuxeo.ecm.login.token.authentication.contrib",
          "name": "org.nuxeo.ecm.login.token.authentication.contrib",
          "requirements": [],
          "services": [],
          "version": "7.10-HF07",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.ecm.login.token.authentication.contrib\">\n\n  <!-- Replace Automation specific authentication chain -->\n  <require>org.nuxeo.ecm.automation.server.auth.config</require>\n\n  <extension target=\"org.nuxeo.ecm.platform.ui.web.auth.service.PluggableAuthenticationService\" point=\"authenticators\">\n\n    <documentation>\n      Authentication plugin using a token to validate\n      identity. This token is sent as a HTTP request header.\n\n      The user is retrieved looking into a directory mapping unique tokens to user names.\n\n      This Authentication Plugin is\n      configured to be\n      used with the Trusting_LM LoginModule plugin\n      => no password check will be done, a\n      principal will be\n      created from the userName if the user exists in the user directory.\n\n      Set the allowAnonymous parameter to true to\n      allow token authentication for anonymous user.\n\n      @author\n      Antoine Taillefer (ataillefer@nuxeo.com)\n    </documentation>\n\n    <authenticationPlugin name=\"TOKEN_AUTH\" enabled=\"true\"\n      class=\"org.nuxeo.ecm.platform.ui.web.auth.token.TokenAuthenticator\">\n      <loginModulePlugin>Trusting_LM</loginModulePlugin>\n      <parameters>\n        <parameter name=\"allowAnonymous\">false</parameter>\n      </parameters>\n    </authenticationPlugin>\n\n  </extension>\n\n  <extension target=\"org.nuxeo.ecm.platform.ui.web.auth.service.PluggableAuthenticationService\" point=\"specificChains\">\n\n    <documentation>\n      Override Automation specific authentication chain to\n      use token authentication just after basic one.\n    </documentation>\n\n    <specificAuthenticationChain name=\"Automation\" handlePrompt=\"false\">\n\n      <urlPatterns>\n        <url>(.*)/automation.*</url>\n      </urlPatterns>\n      <replacementChain>\n        <plugin>AUTOMATION_BASIC_AUTH</plugin>\n        <plugin>TOKEN_AUTH</plugin>\n      </replacementChain>\n    </specificAuthenticationChain>\n\n    <specificAuthenticationChain name=\"RestAPI\">\n      <urlPatterns>\n        <url>(.*)/api/v.*</url>\n      </urlPatterns>\n      <replacementChain>\n        <plugin>AUTOMATION_BASIC_AUTH</plugin>\n        <plugin>TOKEN_AUTH</plugin>\n      </replacementChain>\n    </specificAuthenticationChain>\n\n\n\n    <documentation>\n      Use token authentication if the related request\n      header is sent.\n    </documentation>\n\n    <specificAuthenticationChain name=\"TokenAuth\">\n      <headers>\n        <header name=\"X-Authentication-Token\">.*</header>\n      </headers>\n      <replacementChain>\n        <plugin>TOKEN_AUTH</plugin>\n      </replacementChain>\n    </specificAuthenticationChain>\n\n  </extension>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/token-authentication-contrib.xml",
          "xmlPureComponent": true
        },
        {
          "@type": "NXComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.directory.sql.SQLDirectoryFactory--directories",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/org.nuxeo.ecm.platform.login.token/org.nuxeo.ecm.login.token.directory.contrib/Contributions/org.nuxeo.ecm.login.token.directory.contrib--directories",
              "id": "org.nuxeo.ecm.login.token.directory.contrib--directories",
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.directory.sql.SQLDirectoryFactory",
                "name": "org.nuxeo.ecm.directory.sql.SQLDirectoryFactory",
                "type": "service"
              },
              "version": "7.10-HF07",
              "xml": "<extension point=\"directories\" target=\"org.nuxeo.ecm.directory.sql.SQLDirectoryFactory\">\n\n    <directory name=\"authTokens\">\n      <dataSource>java:/nxsqldirectory</dataSource>\n      <schema>authtoken</schema>\n      <table>auth_tokens</table>\n      <idField>token</idField>\n      <autoincrementIdField>false</autoincrementIdField>\n      <createTablePolicy>on_missing_columns</createTablePolicy>\n      <!-- Set cache to 5 minutes -->\n      <cacheTimeout>300</cacheTimeout>\n      <cacheMaxSize>1000</cacheMaxSize>\n    </directory>\n\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.ecm.platform/org.nuxeo.ecm.platform.login.token/org.nuxeo.ecm.login.token.directory.contrib",
          "name": "org.nuxeo.ecm.login.token.directory.contrib",
          "requirements": [],
          "services": [],
          "version": "7.10-HF07",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.ecm.login.token.directory.contrib\">\n\n  <extension target=\"org.nuxeo.ecm.directory.sql.SQLDirectoryFactory\"\n    point=\"directories\">\n\n    <directory name=\"authTokens\">\n      <dataSource>java:/nxsqldirectory</dataSource>\n      <schema>authtoken</schema>\n      <table>auth_tokens</table>\n      <idField>token</idField>\n      <autoincrementIdField>false</autoincrementIdField>\n      <createTablePolicy>on_missing_columns</createTablePolicy>\n      <!-- Set cache to 5 minutes -->\n      <cacheTimeout>300</cacheTimeout>\n      <cacheMaxSize>1000</cacheMaxSize>\n    </directory>\n\n  </extension>\n</component>\n",
          "xmlFileName": "/OSGI-INF/token-authentication-directory-contrib.xml",
          "xmlPureComponent": true
        },
        {
          "@type": "NXComponent",
          "componentClass": "org.nuxeo.ecm.tokenauth.service.TokenAuthenticationServiceImpl",
          "documentation": "\n    Service to manage generation and storage of\n    authentication tokens. Each token\n    is unique and persisted in the\n    back-end with the user information it\n    is bound to: user name,\n    application name, device name, device description, permission.\n\n    @author Antoine Taillefer\n    (ataillefer@nuxeo.com)\n  \n",
          "documentationHtml": "<p>\nService to manage generation and storage of\nauthentication tokens. Each token\nis unique and persisted in the\nback-end with the user information it\nis bound to: user name,\napplication name, device name, device description, permission.\n</p><p>\n(ataillefer&#64;nuxeo.com)\n</p><p></p>",
          "extensionPoints": [],
          "extensions": [],
          "hierarchyPath": "/grp:org.nuxeo.ecm.platform/org.nuxeo.ecm.platform.login.token/org.nuxeo.ecm.login.token.TokenAuthenticationService",
          "name": "org.nuxeo.ecm.login.token.TokenAuthenticationService",
          "requirements": [],
          "services": [
            {
              "@type": "NXService",
              "componentId": "org.nuxeo.ecm.login.token.TokenAuthenticationService",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/org.nuxeo.ecm.platform.login.token/org.nuxeo.ecm.login.token.TokenAuthenticationService/Services/org.nuxeo.ecm.tokenauth.service.TokenAuthenticationService",
              "id": "org.nuxeo.ecm.tokenauth.service.TokenAuthenticationService",
              "overriden": false,
              "version": "7.10-HF07"
            }
          ],
          "version": "7.10-HF07",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.ecm.login.token.TokenAuthenticationService\">\n\n  <documentation>\n    Service to manage generation and storage of\n    authentication tokens. Each token\n    is unique and persisted in the\n    back-end with the user information it\n    is bound to: user name,\n    application name, device name, device description, permission.\n\n    @author Antoine Taillefer\n    (ataillefer@nuxeo.com)\n  </documentation>\n\n  <implementation\n    class=\"org.nuxeo.ecm.tokenauth.service.TokenAuthenticationServiceImpl\" />\n\n  <service>\n    <provide\n      interface=\"org.nuxeo.ecm.tokenauth.service.TokenAuthenticationService\" />\n  </service>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/token-authentication-framework.xml",
          "xmlPureComponent": false
        },
        {
          "@type": "NXComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.platform.forms.layout.WebLayoutManager--widgets",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/org.nuxeo.ecm.platform.login.token/org.nuxeo.ecm.login.token.layouts/Contributions/org.nuxeo.ecm.login.token.layouts--widgets",
              "id": "org.nuxeo.ecm.login.token.layouts--widgets",
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.platform.forms.layout.WebLayoutManager",
                "name": "org.nuxeo.ecm.platform.forms.layout.WebLayoutManager",
                "type": "service"
              },
              "version": "7.10-HF07",
              "xml": "<extension point=\"widgets\" target=\"org.nuxeo.ecm.platform.forms.layout.WebLayoutManager\">\n\n    <widget name=\"authToken\" type=\"text\">\n      <labels>\n        <label mode=\"any\">label.tokenauth.token</label>\n      </labels>\n      <translated>true</translated>\n      <fields>\n        <field>authtoken:token</field>\n      </fields>\n      <widgetModes>\n        <mode value=\"edit\">view</mode>\n      </widgetModes>\n    </widget>\n\n    <widget name=\"authTokenApplicationName\" type=\"text\">\n      <labels>\n        <label mode=\"any\">label.tokenauth.applicationName</label>\n      </labels>\n      <translated>true</translated>\n      <fields>\n        <field>authtoken:applicationName</field>\n      </fields>\n      <widgetModes>\n        <mode value=\"edit\">view</mode>\n      </widgetModes>\n    </widget>\n\n    <widget name=\"authTokenDeviceId\" type=\"text\">\n      <labels>\n        <label mode=\"any\">label.tokenauth.deviceId</label>\n      </labels>\n      <translated>true</translated>\n      <fields>\n        <field>authtoken:deviceId</field>\n      </fields>\n      <widgetModes>\n        <mode value=\"edit\">view</mode>\n      </widgetModes>\n    </widget>\n\n    <widget name=\"authTokenDeviceDescription\" type=\"text\">\n      <labels>\n        <label mode=\"any\">label.tokenauth.deviceDescription</label>\n      </labels>\n      <translated>true</translated>\n      <fields>\n        <field>authtoken:deviceDescription</field>\n      </fields>\n    </widget>\n\n    <widget name=\"authTokenPermission\" type=\"text\">\n      <labels>\n        <label mode=\"any\">label.tokenauth.permission</label>\n      </labels>\n      <translated>true</translated>\n      <fields>\n        <field>authtoken:permission</field>\n      </fields>\n      <widgetModes>\n        <mode value=\"edit\">view</mode>\n      </widgetModes>\n    </widget>\n\n    <widget name=\"authTokenCreationDate\" type=\"datetime\">\n      <labels>\n        <label mode=\"any\">label.tokenauth.creationDate</label>\n      </labels>\n      <translated>true</translated>\n      <fields>\n        <field>authtoken:creationDate</field>\n      </fields>\n      <widgetModes>\n        <mode value=\"edit\">view</mode>\n      </widgetModes>\n      <properties widgetMode=\"any\">\n        <property name=\"pattern\">#{nxu:basicDateAndTimeFormatter()}\n        </property>\n      </properties>\n    </widget>\n\n  </extension>"
            },
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.platform.forms.layout.WebLayoutManager--layouts",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/org.nuxeo.ecm.platform.login.token/org.nuxeo.ecm.login.token.layouts/Contributions/org.nuxeo.ecm.login.token.layouts--layouts",
              "id": "org.nuxeo.ecm.login.token.layouts--layouts",
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.platform.forms.layout.WebLayoutManager",
                "name": "org.nuxeo.ecm.platform.forms.layout.WebLayoutManager",
                "type": "service"
              },
              "version": "7.10-HF07",
              "xml": "<extension point=\"layouts\" target=\"org.nuxeo.ecm.platform.forms.layout.WebLayoutManager\">\n\n    <layout name=\"authTokenBindings\">\n      <templates>\n        <template mode=\"any\">\n          /layouts/auth_token_bindings_layout_template.xhtml\n        </template>\n      </templates>\n      <rows>\n        <row>\n          <widget>authToken</widget>\n        </row>\n        <row>\n          <widget>authTokenApplicationName</widget>\n        </row>\n        <row>\n          <widget>authTokenDeviceId</widget>\n        </row>\n        <row>\n          <widget>authTokenDeviceDescription</widget>\n        </row>\n        <row>\n          <widget>authTokenPermission</widget>\n        </row>\n        <row>\n          <widget>authTokenCreationDate</widget>\n        </row>\n      </rows>\n    </layout>\n\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.ecm.platform/org.nuxeo.ecm.platform.login.token/org.nuxeo.ecm.login.token.layouts",
          "name": "org.nuxeo.ecm.login.token.layouts",
          "requirements": [],
          "services": [],
          "version": "7.10-HF07",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.ecm.login.token.layouts\">\n\n  <extension target=\"org.nuxeo.ecm.platform.forms.layout.WebLayoutManager\"\n    point=\"layouts\">\n\n    <layout name=\"authTokenBindings\">\n      <templates>\n        <template mode=\"any\">\n          /layouts/auth_token_bindings_layout_template.xhtml\n        </template>\n      </templates>\n      <rows>\n        <row>\n          <widget>authToken</widget>\n        </row>\n        <row>\n          <widget>authTokenApplicationName</widget>\n        </row>\n        <row>\n          <widget>authTokenDeviceId</widget>\n        </row>\n        <row>\n          <widget>authTokenDeviceDescription</widget>\n        </row>\n        <row>\n          <widget>authTokenPermission</widget>\n        </row>\n        <row>\n          <widget>authTokenCreationDate</widget>\n        </row>\n      </rows>\n    </layout>\n\n  </extension>\n\n  <extension target=\"org.nuxeo.ecm.platform.forms.layout.WebLayoutManager\"\n    point=\"widgets\">\n\n    <widget name=\"authToken\" type=\"text\">\n      <labels>\n        <label mode=\"any\">label.tokenauth.token</label>\n      </labels>\n      <translated>true</translated>\n      <fields>\n        <field>authtoken:token</field>\n      </fields>\n      <widgetModes>\n        <mode value=\"edit\">view</mode>\n      </widgetModes>\n    </widget>\n\n    <widget name=\"authTokenApplicationName\" type=\"text\">\n      <labels>\n        <label mode=\"any\">label.tokenauth.applicationName</label>\n      </labels>\n      <translated>true</translated>\n      <fields>\n        <field>authtoken:applicationName</field>\n      </fields>\n      <widgetModes>\n        <mode value=\"edit\">view</mode>\n      </widgetModes>\n    </widget>\n\n    <widget name=\"authTokenDeviceId\" type=\"text\">\n      <labels>\n        <label mode=\"any\">label.tokenauth.deviceId</label>\n      </labels>\n      <translated>true</translated>\n      <fields>\n        <field>authtoken:deviceId</field>\n      </fields>\n      <widgetModes>\n        <mode value=\"edit\">view</mode>\n      </widgetModes>\n    </widget>\n\n    <widget name=\"authTokenDeviceDescription\" type=\"text\">\n      <labels>\n        <label mode=\"any\">label.tokenauth.deviceDescription</label>\n      </labels>\n      <translated>true</translated>\n      <fields>\n        <field>authtoken:deviceDescription</field>\n      </fields>\n    </widget>\n\n    <widget name=\"authTokenPermission\" type=\"text\">\n      <labels>\n        <label mode=\"any\">label.tokenauth.permission</label>\n      </labels>\n      <translated>true</translated>\n      <fields>\n        <field>authtoken:permission</field>\n      </fields>\n      <widgetModes>\n        <mode value=\"edit\">view</mode>\n      </widgetModes>\n    </widget>\n\n    <widget name=\"authTokenCreationDate\" type=\"datetime\">\n      <labels>\n        <label mode=\"any\">label.tokenauth.creationDate</label>\n      </labels>\n      <translated>true</translated>\n      <fields>\n        <field>authtoken:creationDate</field>\n      </fields>\n      <widgetModes>\n        <mode value=\"edit\">view</mode>\n      </widgetModes>\n      <properties widgetMode=\"any\">\n        <property name=\"pattern\">#{nxu:basicDateAndTimeFormatter()}\n        </property>\n      </properties>\n    </widget>\n\n  </extension>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/token-authentication-layouts-contrib.xml",
          "xmlPureComponent": true
        },
        {
          "@type": "NXComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.core.schema.TypeService--schema",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/org.nuxeo.ecm.platform.login.token/org.nuxeo.ecm.login.token.directory.types/Contributions/org.nuxeo.ecm.login.token.directory.types--schema",
              "id": "org.nuxeo.ecm.login.token.directory.types--schema",
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.core.schema.TypeService",
                "name": "org.nuxeo.ecm.core.schema.TypeService",
                "type": "service"
              },
              "version": "7.10-HF07",
              "xml": "<extension point=\"schema\" target=\"org.nuxeo.ecm.core.schema.TypeService\">\n    <schema name=\"authtoken\" src=\"directoryschema/authtoken.xsd\"/>\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.ecm.platform/org.nuxeo.ecm.platform.login.token/org.nuxeo.ecm.login.token.directory.types",
          "name": "org.nuxeo.ecm.login.token.directory.types",
          "requirements": [],
          "services": [],
          "version": "7.10-HF07",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.ecm.login.token.directory.types\">\n\n  <extension target=\"org.nuxeo.ecm.core.schema.TypeService\"\n    point=\"schema\">\n    <schema name=\"authtoken\" src=\"directoryschema/authtoken.xsd\" />\n  </extension>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/token-authentication-directory-types.xml",
          "xmlPureComponent": true
        }
      ],
      "fileName": "nuxeo-platform-login-token-7.10-HF07.jar",
      "groupId": "org.nuxeo.ecm.platform",
      "hierarchyPath": "/grp:org.nuxeo.ecm.platform/org.nuxeo.ecm.platform.login.token",
      "id": "org.nuxeo.ecm.platform.login.token",
      "location": "",
      "manifest": "Manifest-Version: 1.0\r\nArchiver-Version: Plexus Archiver\r\nCreated-By: Apache Maven\r\nBuilt-By: jenkins\r\nBuild-Jdk: 1.8.0_60\r\nBundle-ManifestVersion: 1\r\nBundle-Version: 1.0.0\r\nBundle-Name: Nuxeo token authentication plugin\r\nBundle-SymbolicName: org.nuxeo.ecm.platform.login.token;singleton:=true\r\nRequire-Bundle: org.nuxeo.ecm.platform.login\r\nNuxeo-Component: OSGI-INF/token-authentication-framework.xml,OSGI-INF/\r\n token-authentication-directory-types.xml,OSGI-INF/token-authenticatio\r\n n-directory-contrib.xml,OSGI-INF/token-authentication-contrib.xml,OSG\r\n I-INF/token-authentication-layouts-contrib.xml\r\n\r\n",
      "packages": [],
      "requirements": [],
      "version": "7.10-HF07"
    }
  ],
  "creationDate": 1664792867649,
  "key": "Nuxeo Platform LTS 2015-7.10",
  "name": "Nuxeo Platform LTS 2015",
  "operations": [],
  "packages": [],
  "pluginSnapshots": {},
  "releaseDate": 1447023600000,
  "version": "7.10"
}